Content addressable memory (CAM) is used, for example, between a router and a CPU/cache or the like, so that high speed searching is performed. In a general memory like an RAM such as an SRAM or DRAM sends back data stored in a particular address upon designation of the address. On the contrary, the CAM retrieves stored data matching with designated search data from all contents and sends back an address where the stored data is stored upon designation of the search data. In practice, the CAM is combined with an ordinary RAM as a CAM/RAM and functions such that, when a certain data word is inputted from a user, another data word associated with the data word is outputted.
The CAM can perform searching at a higher speed than the RAM in all searching purposes. However, since the CAM requires a physical memory space for searching, the circuit area becomes large. In the CAM which operates perfectly concurrently, a circuit for comparison with input data in accordance with all bits in the memory is required differently from the RAM composed of simple storage cells. Moreover, in order to find not matching one bit but matching a data word as a whole, a circuit for collecting comparison results is also required. Since the circuit area of the CAM increases because of these additional circuits, the manufacturing cost increases. And, since increase of the circuit area results in relative reduction of a data storing region, the memory space is relatively decreased. Further, since the above-mentioned comparison circuit performs a standby operation so as to wait for data input, large static power consumption is required compared with the RAM. As a result, search speed has a trade-off relationship with cost and power consumption. And, the CAM is used almost mainly for the case where searching at a very high speed is essential.